.\"   $Id: delbddnode.3,v 1.1 2002/03/18 11:26:50 ludo Exp $
.\" @(#)delbddnode.2 2.7 96/07/02 ; Labo masi cao-vlsi; Author : Jacomme Ludovic
.TH DELBDDNODE 3 "October 1, 1997" "ASIM/LIP6" "BDD FUNCTIONS"
.SH NAME
delbddnode \- deletes an unused \fBbdd\fP node.
.so man1/alc_origin.1
.SH SYNOPSIS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "bdd101.h"
void delbddnode( BddSystem, BddNode )
  bddsystem \(**BddSystem;
  bddnode   \(**BddNode;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIBddSystem\fP
The \fBbdd\fP system.
.TP
\fIBddNode\fP
The \fBbdd\fP node.
.SH DESCRIPTION
\fBdelbddnode\fP tries to delete the \fBbdd\fP node \fIBddNode\fP and its
children, if they have not external reference, in the \fBbdd\fP system \fIBddSystem\fP.
If a null pointer is given, the default \fBbdd\fP system is used. The use of this
function is not recommended because, it takes time.
It is better to call the \fIdecbddrefext\fP function, and do a garbage collection
with the \fIgarbagebddsystem\fP function.
.br
.SH RETURN VALUE
\fBdelbddnode\fP returns nothing.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "bdd101.h"
   bddsystem  \(**BddSystem;
   bddcircuit \(**BddCircuit;
   bddnode    \(**BddNode;
   chain_list \(**Expr;
   BddSystem  = createbddsystem( 100, 1000, 100, 50000 );
   BddCircuit = createbddcircuit( "hello_world", 10, 10, BddSystem );
   BddNode = addbddcircuitin( (bddcircuit \(**)0, "i0", 0, BDD_IN_MODE_FIRST );
   BddNode = addbddnode( (bddsystem \(**)0, BddNode->INDEX, BddNode->LOW, BddNode->HIGH );
   Expr = convertbddcircuitabl( (bddcircuit \(**)0, BddNode );
   delbddnode( (bddsystem \(**)0, decbddrefext( BddNode ) );
   /* displays (not i0) */
   viewablexpr( Expr, ABL_VIEW_VHDL );
   freeablexpr( Expr );
   destroybddsystem( (bddsystem \(**)0 );
   destroybddcircuit( (bddcircuit \(**)0 );
.ft R
.fi
.SH SEE ALSO
.BR bdd (1)


.so man1/alc_bug_report.1

